﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Newtonsoft.Json;

namespace FaceSharp.Api.Types
{
    public class PlaceType
    {
        public long Id { get; set; }
        public FromData From { get; set; }
        public TagDataContainer Tags { get; set; }
        public string Message { get; set; }
        public PlaceData Place { get; set; }
        public ApplicationData Application { get; set; }
        [JsonProperty(PropertyName = "created_time")]
        public string CreatedTime { get; set; }
        public CommentDataContainer Comments { get; set; }
        public LikeDataContainer Likes { get; set; }

        public class FromData
        {
            public long Id { get; set; }
            public string Name { get; set; }
        }

        public class TagDataContainer
        {
            public IEnumerable<TagData> Data { get; set; }
            public class TagData
            {
                public string Name { get; set; }
                public long Id { get; set; }
            }
        }
        
        public class PlaceData
        {
            public long Id { get; set;}
            public string Name { get; set;}
            public LocationData Location { get; set;}

            public class LocationData
            {
                public string Street { get; set; }
                public string City { get; set; }
                public string State { get; set; }
                public string Country { get; set; }
                public string Zip { get; set; }

                public decimal Latitude { get; set;}
                public decimal Longitude { get; set;}
            }
        }
        public class ApplicationData
        {
            public string Name { get; set; }
            public long Id { get; set; }
        }
        public class LikeDataContainer
        {
            public IList<LikeData> Data { get; set; }
            public class LikeData
            {
                public long Id { get; set; }
                public string Name { get; set; }
            }
        }
        public class CommentDataContainer
        {
            public IList<CommentData> Data { get; set; }
            public class CommentData
            {
                public string Id { get; set; }
                public FromData From { get; set; }
                public string Message { get; set; }
                public string CreatedTime { get; set; }
            
            }
        }
    }
}